
// 【封装axios】

import axios from "axios";
import { Message } from "element-ui"
import router from "@/router"

//================== 区分环境，配置接口地址
import { API_URL } from "./apiUrl"


//================== 创建axios实例
let $axios = axios.create({
    // 前缀
    baseURL: API_URL,
    // 超时
    timeout:3000
})


//================== 配置拦截器
// 添加请求拦截器
// $axios.interceptors.request.use(function (config) {
//     if (config.url !="/userlogin"){
//         let userinfo = JSON.parse(localStorage.getItem("userinfo"))
//         // 给请求头添加上token信息！
//         config.headers.authorization = userinfo.token;
//     }
//     // 在发送请求之前做些什么
//     return config;
// }, function (error) {
//     // 对请求错误做些什么
//     return Promise.reject(error);
// });

// 添加响应拦截器
$axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if(response.status==200){
        // responses.data后台返回的数据！
        if (response.data.code==200){
            return response.data;
        }else{
            // 两类错误：  1、数据请求出错    2、token错误
            Message.error(response.data.msg)
            // 如果token错误，那么就跳转到登录页面
            if(response.data.code==403){
                setTimeout(()=>{
                    router.replace("/login")
                },500)
            }
        }
    }else{
        Message.error("请求出错！状态码" + response.status);
        console.log(response)
    }
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});


export default $axios;


// export default  对象！ ==>   import 变量    from "路径"

// export let 变量1=数据     ==>   import * as 变量   from "路径"
// export let 变量2=数据2    ===>  import { 变量1,变量2 }  from "路径"

// exports.属性1 = 值1
// exports.属性2 = 值2

